package role

import (
	"github.com/APP/internal/handler"
	"github.com/gin-gonic/gin"
)

// RegisterRoleRoutes 注册角色路由
func RegisterRoleRoutes(router *gin.RouterGroup) {
	roleHandler := handler.NewRoleHandler()

	roleGroup := router.Group("/role")
	{
		// 基础CRUD操作
		roleGroup.POST("", roleHandler.CreateRole)       // 创建角色
		roleGroup.PUT("/:id", roleHandler.UpdateRole)    // 更新角色
		roleGroup.DELETE("/:id", roleHandler.DeleteRole) // 删除角色
		roleGroup.GET("/:id", roleHandler.GetRole)       // 获取角色详情
		roleGroup.GET("", roleHandler.GetRoleList)       // 获取角色列表

		// 树形结构操作
		roleGroup.GET("/tree", roleHandler.GetRoleTree)               // 获取角色树形结构
		roleGroup.GET("/:id/children", roleHandler.GetRoleChildren)   // 获取角色的所有子角色
		roleGroup.GET("/:id/ancestors", roleHandler.GetRoleAncestors) // 获取角色的所有祖先角色

		// 权限管理
		roleGroup.POST("/:id/permissions", roleHandler.AssignPermissions) // 为角色分配权限
		roleGroup.GET("/:id/permissions", roleHandler.GetRolePermissions) // 获取角色的权限列表

		// 树维护操作
		roleGroup.POST("/rebuild-tree", roleHandler.RebuildRoleTree)  // 重建角色树
		roleGroup.GET("/validate-tree", roleHandler.ValidateRoleTree) // 验证角色树的完整性
	}
}
